The proliferation of computers has resulted in an increased usage of digital data in the transmission, storage, and use of text, graphics, sound and video. As the use of digital data increases, the need to secure and protect this data also increases. One common method of protecting digital information is through the use of encryption. Encryption generally refers to the reversible transformation of data into a form in which the context of the original data cannot be ascertained by normal examination of the data. Moreover, only those who know how the data was manipulated can perform the reverse function and restore the data to its original form. Encryption systems are numerous and well know.
For example, some current encryption systems perform a complex mathematical operation on the original data in response to an encryption key or password. The encryption key may be a large prime number. Thus, the mathematical operations used to encrypt data may involve floating decimal point calculations. These systems are complex and require relatively significant amounts of time to complete due to the complex calculations. Additionally, these systems may operate on a fixed size block of data which cannot be varied. Because the block size cannot be varied, the resulting encrypted data may include repetitive patterns that make the encrypted data susceptible to various crypto-analysis techniques which can readily decipher the encrypted data. Also, these systems typically produce an encrypted set of data that is larger in size than the original unencrypted data. Accordingly, these systems may require the use of a separate compression routine prior to encryption in order to limit the size of the resulting data after encryption.